package com.xingxuecn.demos.controller;

import com.xingxuecn.demos.dao.domain.Role;
import com.xingxuecn.demos.dao.mapper.RoleMapper;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.RedirectView;


/*
* @RestController和@Controller注解：
* 1、@Controller注解返回逻辑视图，可以用字符串或者是ModelAndView对象。
*    @RestController返回逻辑视图，不能用字符串，可使用ModelAndView对象。
*
* 2、@Controller返回Json需要@ResponseBody注解标注。
*    @RestController不需要@ResponseBody注解
* */
/**
 * @author Kris at 2018/9/28 9:22
 */
@RestController
@RequestMapping("rest")
public class RestTestController {

    @Autowired
    RoleMapper roleMapper;

    @GetMapping("index")/* 等价于下面的注解
    @RequestMapping(value = "index",method = RequestMethod.GET)*/
    public ModelAndView index(){
        return new ModelAndView("restTest");
    }

    /**
    * 重定向方式：1、“redirect:目的资源路径”
    *           2、使用RedirectView对象
    * 转发到Controller：   "forward:目的资源路径"
    * */
    @GetMapping("go")
    public ModelAndView go(){
        //ModelAndView modelAndView = new ModelAndView(new RedirectView("https://www.baidu.com"));
        ModelAndView modelAndView = new ModelAndView("forward:detail");
        return modelAndView;
    }



    @GetMapping("detail")
    public Role detail(){
        Role role = new Role();
        role.setName("胜多负少");
        return role;
    }

    @PostMapping("add")
    public Role add(Role role){
        return new Role();
    }

    @PutMapping("update")
    public Role update(Role role){
        return new Role();
    }

    @DeleteMapping
    public Boolean delete(){
        return true;
    }

}
